package com.example.yilanchatserver.business.freechat.service.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ErnieBotReqDTO implements Serializable {

    /**
     * 聊天上下文信息
     */
    List<ErnieBotMessageDTO> messages;

    /**
     * 较高的数值会使输出更加随机，而较低的数值会使其更加集中和确定。
     * 默认0.95，范围 (0, 1.0]，不能为0。
     */
    Double temperature = 0.95;

    /**
     * 影响输出文本的多样性，取值越大，生成文本的多样性越强
     * 默认0.8，取值范围 [0, 1.0]
     */
    Double topP = 0.8;

    /**
     * 通过对已生成的token增加惩罚，减少重复生成的现象。
     * 默认1.0，取值范围：[1.0, 2.0]
     */
    Double penaltyScore = 1.0;

    /**
     * 是否以流式接口的形式返回数据，默认false
     */
    Boolean stream = false;

    /**
     * 表示最终用户的唯一标识符，可以监视和检测滥用行为，防止接口恶意调用
     */
    String userId;
}
